<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Ondemand (infer.Backend.Ondemand)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">Backend</a> &#x00BB; Ondemand</nav><header class="odoc-preamble"><h1>Module <code><span>Backend.Ondemand</span></code></h1><p>Module for on-demand analysis.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-analyze_proc_name"><a href="#val-analyze_proc_name" class="anchor"></a><code><span><span class="keyword">val</span> analyze_proc_name : 
  <span><a href="../../Absint/Exe_env/index.html#type-t">Absint.Exe_env.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IBase/AnalysisRequest/index.html#type-t">IBase.AnalysisRequest.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><span class="optlabel">?specialization</span>:<a href="../../IR/Specialization/index.html#type-t">IR.Specialization.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><span class="label">caller_summary</span>:<a href="../Summary/index.html#type-t">Summary.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IR/Procname/index.html#type-t">IR.Procname.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../Summary/index.html#type-t">Summary.t</a> <a href="../../Absint/AnalysisResult/index.html#type-t">Absint.AnalysisResult.t</a></span></span></code></div><div class="spec-doc"><p><code>analyze_proc_name exe_env ~caller_summary callee_pname</code> performs an on-demand analysis of <code>callee_pname</code> triggered during the analysis of <code>caller_summary</code> If <code>specialization</code> is given, the callee is requesting a specialization.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-analyze_proc_name_for_file_analysis"><a href="#val-analyze_proc_name_for_file_analysis" class="anchor"></a><code><span><span class="keyword">val</span> analyze_proc_name_for_file_analysis : 
  <span><a href="../../Absint/Exe_env/index.html#type-t">Absint.Exe_env.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IBase/AnalysisRequest/index.html#type-t">IBase.AnalysisRequest.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IR/Procname/index.html#type-t">IR.Procname.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../Summary/index.html#type-t">Summary.t</a> <a href="../../Absint/AnalysisResult/index.html#type-t">Absint.AnalysisResult.t</a></span></span></code></div><div class="spec-doc"><p><code>analyze_proc_name_for_file_analysis exe_env callee_pname</code> performs an on-demand analysis of <code>callee_pname</code> as triggered by a file-level checker. This must not be used in any other context, as this will break incremental analysis.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-analyze_file"><a href="#val-analyze_file" class="anchor"></a><code><span><span class="keyword">val</span> analyze_file : 
  <span><a href="../../Absint/Exe_env/index.html#type-t">Absint.Exe_env.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IBase/AnalysisRequest/index.html#type-t">IBase.AnalysisRequest.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a> <span class="arrow">&#45;&gt;</span></span>
  unit</span></code></div><div class="spec-doc"><p>Invoke all the callbacks registered in <a href="../Callbacks/index.html"><code>Callbacks</code></a> on the given file.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-analyze_proc_name_toplevel"><a href="#val-analyze_proc_name_toplevel" class="anchor"></a><code><span><span class="keyword">val</span> analyze_proc_name_toplevel : 
  <span><a href="../../Absint/Exe_env/index.html#type-t">Absint.Exe_env.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IBase/AnalysisRequest/index.html#type-t">IBase.AnalysisRequest.t</a> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../../IR/Procname/index.html#type-t">IR.Procname.t</a> <span class="arrow">&#45;&gt;</span></span>
  unit</span></code></div><div class="spec-doc"><p>Invoke all the callbacks registered in <a href="../Callbacks/index.html"><code>Callbacks</code></a> on the given procedure.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-edges_to_ignore"><a href="#val-edges_to_ignore" class="anchor"></a><code><span><span class="keyword">val</span> edges_to_ignore : 
  <span><span><span><a href="../../IR/Procname/Set/index.html#type-t">IR.Procname.Set.t</a> <a href="../../IR/Procname/Map/index.html#type-t">IR.Procname.Map.t</a></span> option</span> <a href="../../IStdlib/IStd/index.html#type-ref">IStdlib.IStd.ref</a></span></span></code></div><div class="spec-doc"><p>used by the replay analysis to cut mutual recursion cycles in the same places again</p></div></div></div></body></html>
